/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.np2tec.soa.servicos;

import br.np2tec.soa.entidades.PropostaContrato;
import java.util.List;
import javax.jws.WebService;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author np2tec-07
 */
@WebService()
@Stateless()
public class TratarPropostaContratoDataService {
    @PersistenceContext(unitName = "TratarPropostaContratoDataServicePU")
    EntityManager em;

    public void incluirPropostaContrato(PropostaContrato propostaContrato) {
        em.persist(propostaContrato);
    }

    public void alterarPropostaContrato(PropostaContrato propostaContrato) {
        em.merge(propostaContrato);
    }

    public void excluirPropostaContrato(Integer numeroContrato) {
        em.remove(consultarPropostaContrato(numeroContrato));
        em.flush();
    }

    public PropostaContrato consultarPropostaContrato(Integer numeroContrato) {
        Query query = em.createQuery("SELECT pc FROM PropostaContrato pc WHERE pc.numeroContrato = :numeroContrato");
        query.setParameter("numeroContrato", numeroContrato);
        PropostaContrato propostaContrato = null;

        try {
            propostaContrato = (PropostaContrato) query.getSingleResult();
        } catch (javax.persistence.NoResultException nre) {
        }


        return propostaContrato;
    }

    public PropostaContrato consultarPropostaContratoPorIdCreditosConcedidos(Long idCreditosConcedidos) {
        Query query = em.createQuery("SELECT pc FROM PropostaContrato pc WHERE pc.CreditosConcedidos.id = :idCreditosConcedidos");
        query.setParameter("idCreditosConcedidos", idCreditosConcedidos);
        PropostaContrato propostaContrato = null;

        try {
            propostaContrato = (PropostaContrato) query.getSingleResult();
        } catch (javax.persistence.NoResultException nre) {
        }

        return propostaContrato;
    }

    public List<PropostaContrato> listarPropostaContratoPorSituacao(String situacao) {
        Query query = em.createQuery("SELECT pc FROM PropostaContrato pc WHERE pc.situacao = :situacao");
        query.setParameter("situacao", situacao);
        return query.getResultList();
    }
   

    public List<PropostaContrato> listarPropostaContrato() {
        Query query = em.createQuery("SELECT pc FROM PropostaContrato pc");
        return query.getResultList();
    }
}
